﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using Lilium.UI.Controls;

namespace Lilium.UI
{
    public sealed class UIMonad<T>
    {
        public UIMonad(Func<IUIState, T> runUIFunc)
        {
            if (runUIFunc == null) throw new ArgumentNullException("runUIFunc");

            m_RunUIFunc = runUIFunc;
        }

        #region private Func<UIState, TControl> RunUIFunc

        private readonly Func<IUIState, T> m_RunUIFunc;

        public Func<IUIState, T> RunUIFunc { get { return m_RunUIFunc; } }

        #endregion
    }
}